安卓Switch动画实现

您所在的位置:网站首页 开关 动画片 安卓Switch动画实现

安卓Switch动画实现

2023-07-13 09:33| 来源: 网络整理| 查看: 265

新项目要实现下面的一个按钮点击效果,在自定义动画 和switchCompat之间,我还是选择了compat。

在下面我就做了记录,如何实现这样的效果;

效果图如下

 1)导入资源图片thumb.png ,thumb_on.png ,track_nomal.png ,track_on.png ,track_press.png

 2)实现thumb_selector.xml 

3)实现track_selector.xml

4)主布局actiity_second.xml

5)主布局java类SecondActivity.java   

public class SecondActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{ private SwitchCompat customSwitchCompat; private TextView custom_result,CustomSwitchCompat_tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); //实例化 customSwitchCompat = (SwitchCompat) findViewById(R.id.CustomSwitchCompat); custom_result = (TextView) findViewById(R.id.custom_result); //设置自定义的thumb和track customSwitchCompat.setThumbResource(R.drawable.thumb_selector); customSwitchCompat.setTrackResource(R.drawable.track_selector); //设置Switch事件监听 customSwitchCompat.setOnCheckedChangeListener(this); } /* 继承监听器的接口并实现onCheckedChanged方法 * */ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(isChecked){ custom_result.setText("开"); }else { custom_result.setText("关"); } } } 常规属性: android:typeface="normal":设置字体类型 android:track="":设置开关的轨迹图片 android:textOff="开":设置开关checked的文字 android:textOn="关":设置开关关闭时的文字 android:thumb="":设置开关的图片 android:switchMinWidth="":开关最小宽度 android:switchPadding="":设置开关 与文字的空白距离 android:switchTextAppearance="":设置文本的风格 android:checked="":设置初始选中状态 android:splitTrack="true":是否设置一个间隙,让滑块与底部图片分隔(API 21及以上) android:showText="true":设置是否显示开关上的文字(API 21及以上)

简单使用:

代码:

public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener{ private Switch aSwitch; private SwitchCompat aSwitchCompat; private TextView text1,text2,switchText,switchCompatText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //实例化 aSwitch = (Switch) findViewById(R.id.switch1); aSwitchCompat = (SwitchCompat) findViewById(R.id.switch_compat); text1 = (TextView) findViewById(R.id.text); text2 = (TextView) findViewById(R.id.text1); //设置Switch事件监听 aSwitch.setOnCheckedChangeListener(this); aSwitchCompat.setOnCheckedChangeListener(this); } /* 继承监听器的接口并实现onCheckedChanged方法 * */ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { switch (buttonView.getId()){ case R.id.switch1: if(isChecked){ text1.setText("开"); }else { text1.setText("关"); } break; default: break; } } } 效果图:

《------------------------------------------------------------------------------------华丽的分割线------------------------------------------------------------------- 》

在styles.xml中自定义style

@android:color/holo_green_dark @color/colorAccent @color/colorPrimaryDark 在布局文件中通过android:theme="@style/mySwitch"设置

效果图:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3